﻿using System;

namespace Epic.Core
{
#pragma warning disable 1591
    public class CommandEventArgs<T>
        : EventArgs
    {
        public CommandEventArgs(T value)
            : base()
        {
            Value = value;
        }

        public T Value { get; private set; }
    }
    public delegate void CommandEventHandler<T>(object sender, CommandEventArgs<T> e);

    public class CommandCanExecuteEventArgs<T>
        : CommandEventArgs<T>
    {
        public CommandCanExecuteEventArgs(T value)
            : base(value)
        {
            CanExecute = true;
        }

        public bool CanExecute { get; set; }
    }
    public delegate void CommandCanExecuteEventHandler<T>(object sender, CommandCanExecuteEventArgs<T> e);
}
